Inpainting এবং Outpainting হলো ইমেজ এডিটিং-এর দুটি জনপ্রিয় টেকনিক যা ডিফিউশন মডেল, যেমন Stable Diffusion, ব্যবহার করে করা যায়। এই টেকনিকগুলো বিশেষভাবে ইমেজের নির্দিষ্ট অংশ পরিবর্তন করতে বা ইমেজের বাইরে নতুন কন্টেন্ট যোগ করতে ব্যবহৃত হয়। নিচে উদাহরণসহ এই পদ্ধতিগুলোর ব্যাখ্যা দেওয়া হলো।
1. Inpainting
Inpainting হলো এমন একটি টেকনিক যেখানে একটি ইমেজের নির্দিষ্ট অংশ পরিবর্তন বা পুনর্নির্মাণ করা হয়। এটি ক্ষতিগ্রস্ত বা অনাকাঙ্ক্ষিত অংশ মেরামত বা পরিবর্তন করার জন্য ব্যবহৃত হয়।
উদাহরণ:
প্রম্পট: "Remove the old logo from the wall and replace it with a modern one."
কিভাবে কাজ করে:
- ইমেজের একটি অংশ নির্বাচন করা হয় যেখানে পরিবর্তন করা প্রয়োজন। উদাহরণস্বরূপ, একটি দেয়ালে পুরানো লোগো আছে, যা পরিবর্তন করতে হবে।
- সেই নির্বাচিত অংশটি mask করা হয় এবং মডেলকে বলা হয় এটি পরিবর্তন করতে। মডেল সেই অংশের পরিবর্তে একটি নতুন লোগো বা কন্টেন্ট তৈরি করবে, যা প্রম্পট অনুযায়ী হবে।
কোড উদাহরণ (PyTorch এবং Stable Diffusion ব্যবহার করে):
from diffusers import StableDiffusionInpaintPipeline
import torch
from PIL import Image
# Inpainting pipeline লোড করা
pipe = StableDiffusionInpaintPipeline.from_pretrained("CompVis/stable-diffusion-inpainting", torch_dtype=torch.float16).to("cuda")
# মূল ইমেজ এবং মাস্ক ইমেজ লোড করা
image = Image.open("original_image.jpg")
mask_image = Image.open("mask_image.jpg")
# Inpainting প্রম্পট
prompt = "Replace the old logo with a modern logo"
# Inpainting করা
result = pipe(prompt=prompt, image=image, mask_image=mask_image).images[0]
# ফলাফল দেখানো বা সংরক্ষণ করা
result.save("inpainted_image.jpg")
এখানে:
- মাস্ক ইমেজ হলো সেই ইমেজ যেখানে আমরা পরিবর্তন করতে চাই এমন অংশ মাস্ক করে দিয়েছি। এই মাস্ক করা অংশেই মডেল পরিবর্তন করবে।
- প্রম্পট ব্যবহার করে আমরা নির্দেশ দিচ্ছি কি ধরনের পরিবর্তন আমরা চাই।
2. Outpainting
Outpainting হলো এমন একটি টেকনিক যেখানে ইমেজের বাইরের অংশে নতুন কন্টেন্ট যোগ করা হয়, যা ইমেজের কন্টেক্সট এবং স্টাইলের সাথে সামঞ্জস্যপূর্ণ। এটি ইমেজকে প্রসারিত করার জন্য ব্যবহৃত হয়।
উদাহরণ:
প্রম্পট: "Extend the beach scene to the right with more palm trees and a sunset."
কিভাবে কাজ করে:
- মূল ইমেজের সীমানার বাইরে নতুন অংশ যোগ করা হয়। উদাহরণস্বরূপ, একটি সমুদ্র সৈকতের ইমেজের ডানদিকে নতুন অংশ যোগ করা।
- প্রম্পট ব্যবহার করে মডেলকে বলা হয় ইমেজের সীমানার বাইরে কন্টেন্ট তৈরি করতে, যেমন আরো পাম গাছ এবং সূর্যাস্ত।
কোড উদাহরণ (PyTorch এবং Stable Diffusion ব্যবহার করে):
from diffusers import StableDiffusionInpaintPipeline
import torch
from PIL import Image
# Outpainting pipeline লোড করা
pipe = StableDiffusionInpaintPipeline.from_pretrained("CompVis/stable-diffusion-inpainting", torch_dtype=torch.float16).to("cuda")
# মূল ইমেজ লোড করা
image = Image.open("beach_scene.jpg")
# একটি mask ইমেজ তৈরি করা যেখানে নতুন কন্টেন্ট যুক্ত হবে
mask_image = Image.new("RGB", image.size, (0, 0, 0))
# মাস্কের একটি অংশ হোয়াইট করা হবে যেখানে নতুন কন্টেন্ট যোগ হবে (ব্যাসিক উদাহরণ)
# প্রম্পট
prompt = "Extend the beach with more palm trees and a sunset on the right side."
# Outpainting করা
result = pipe(prompt=prompt, image=image, mask_image=mask_image).images[0]
# ফলাফল দেখানো বা সংরক্ষণ করা
result.save("outpainted_image.jpg")
এখানে:
- মাস্ক ইমেজ হলো একটি ইমেজ যেখানে সাদা অংশ দেখাবে কোথায় নতুন কন্টেন্ট যোগ হবে।
- মডেল সেই সাদা অংশের কন্টেন্টকে প্রম্পট অনুযায়ী এক্সটেন্ড করবে, উদাহরণস্বরূপ, সৈকতের দৃশ্য পাম গাছ এবং সূর্যাস্ত দিয়ে প্রসারিত হবে।
Inpainting এবং Outpainting-এর ব্যবহার ক্ষেত্র:
- ফটো রিস্টোরেশন: পুরানো ছবি মেরামত করা, যেমন ফাটা বা দাগযুক্ত অংশ ঠিক করা।
- কনটেন্ট এডিটিং: যেকোনো অবাঞ্ছিত উপাদান মুছে ফেলা এবং নতুন কিছু যোগ করা, যেমন বস্ত্র বা অ্যাক্সেসরিজ পরিবর্তন।
- ইমেজ এক্সটেনশন: ইমেজের সীমানার বাইরে নতুন অংশ যোগ করে দৃশ্যের প্রসারণ করা।
- মুভি এবং গেম ডিজাইন: কাল্পনিক দৃশ্য বা চরিত্রের ডিজাইন এবং পরিবেশ সম্প্রসারণ করা।
গুরুত্বপূর্ণ টিপস:
- মাস্ক সঠিকভাবে তৈরি করুন: মাস্কিং সঠিক না হলে মডেল সঠিকভাবে কন্টেন্ট তৈরি করতে পারে না।
- সুনির্দিষ্ট প্রম্পট ব্যবহার করুন: ইমেজের কন্টেক্সট এবং স্টাইল অনুযায়ী সুনির্দিষ্ট প্রম্পট দিন, যাতে মডেল নির্ভুল কন্টেন্ট তৈরি করতে পারে।
- মডেল টিউনিং: কন্টেন্টের সামঞ্জস্য নিশ্চিত করতে মডেলের বিভিন্ন প্যারামিটার (যেমন স্টেপ সংখ্যা) টিউন করা যেতে পারে।
এভাবে Inpainting এবং Outpainting ব্যবহার করে মডেলের সাহায্যে ইমেজ এডিটিং করা যায় এবং ইমেজকে আরও বাস্তবসম্মত এবং বিস্তারিতভাবে কাস্টমাইজ করা যায়।
Read more